package versao6;

import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

import java.beans.XMLEncoder;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.lang.Integer;

public class LerPiloto {

	private String arquivoSelecionado;
	private String diretorio;
	private ArrayList<Piloto> piloto = new ArrayList<Piloto>();	
	String nomeArquivoXML = "F1.xml";

	public String getNomeArquivoXML() {
		return diretorio + "/" + nomeArquivoXML;
	}

	public void abrir() {
		JFileChooser escolha = new JFileChooser();
		escolha.setDialogTitle("Escolha o arquivo pilotos.txt");

		int retorno = escolha.showOpenDialog(null);

		if (retorno == JFileChooser.APPROVE_OPTION) {
			arquivoSelecionado = escolha.getSelectedFile().toString();
			System.out.println(arquivoSelecionado);
			
			diretorio = escolha.getSelectedFile().getParent();
			System.out.println(diretorio);

		} else {
			JOptionPane.showMessageDialog(escolha,
					"Arquivo(s) n�o selecionado(s)", "Erro",
					JOptionPane.ERROR_MESSAGE);
			System.exit(1);
		}
	}

	public void ler() {
		try {
			FileReader fileReader = new FileReader(arquivoSelecionado);

			BufferedReader bufferedReader = new BufferedReader(fileReader);

			// String que ir� receber cada linha do arquivo
			String linha = "";

			while ((linha = bufferedReader.readLine()) != null) {
				String[] vet = linha.split(";");
				
				Piloto p = new Piloto();
				p.setNumCarro(10);
				p.setNomePiloto(vet[1]);
				p.setNomeEquipe(vet[2]);
				
				piloto.add(p);
			}

			fileReader.close();
			bufferedReader.close();
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	
	public void escrever() {
		try {
			XMLEncoder xmlEncoder = null;
			try {								
				xmlEncoder = new XMLEncoder(new FileOutputStream(getNomeArquivoXML()));
				xmlEncoder.writeObject(piloto);

			} finally {
				if (xmlEncoder != null)
					xmlEncoder.close();
			}
		} catch (IOException e) {
			System.out.println(e.getMessage());
		}
	}
}
